package com.xr.mapper;

import com.github.pagehelper.Page;
import com.xr.pojo.CheckGroup;
import com.xr.pojo.CheckItem;
import com.xr.pojo.SetMeal;
import com.xr.pojo.SetMealExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SetMealMapper {

    //热门套餐:前四条
    List<Map<String, Object>> findHotSetmeal();

    /**
     * 获取套餐的预约数量
     * @return
     */
    List<Map<String, Object>> findSetmealCount();

    /**
     * 通过套餐id查询检查组列表
     * @param id
     * @return
     */
    List<CheckGroup> findCheckGroupListBySetmealId(Integer id);
    /**
     * 通过检查组id检查检查项列表
     * @param id
     * @return
     */
    List<CheckItem> findCheckItemByCheckGroupId(Integer id);

    //查询套餐详细信息 (包含检查组和检查项)
    SetMeal queryDetailsById(Integer id);
    //五表联查
    SetMeal SelectByFive(Integer id);

     //如果没有套餐的引用，先解散和检查项的关系
    Integer delSetMealAndGroup(Integer id);

    //通过套餐管理id选中检查组id
    List<Integer> selectSetMealBYGroup(Integer setmeal_id);

    //添加套餐和检查组的关系
    void addSetMealCheckGroup(@Param("mealId") Integer mealId, @Param("groupIds") Integer [] groupIds);

    //条件查询加分页
    Page<SetMeal> FindBYString(String findString);

    long countByExample(SetMealExample example);

    int deleteByExample(SetMealExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(SetMeal record);

    int insertSelective(SetMeal record);

    List<SetMeal> selectByExample(SetMealExample example);

    SetMeal selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") SetMeal record, @Param("example") SetMealExample example);

    int updateByExample(@Param("record") SetMeal record, @Param("example") SetMealExample example);

    int updateByPrimaryKeySelective(SetMeal record);

    int updateByPrimaryKey(SetMeal record);

    //删除之前查看是否有套餐的引用
    Integer isUseInSetMeal(Integer id);
}